import java.util.*;
/*给定一个  无重复元素 的 有序 整数数组 nums 。
区间 [a,b] 是从 a 到 b（包含）的所有整数的集合。
返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 。
也就是说，nums 的每个元素都恰好被某个区间范围所覆盖，并且不存在属于某个区间但不属于 nums 的数字 x 。
列表中的每个区间范围 [a,b] 应该按如下格式输出：
"a->b" ，如果 a != b
"a" ，如果 a == b
示例 1：
输入：nums = [0,1,2,4,5,7]
输出：["0->2","4->5","7"]*/
public class Main {
    public static List<String> check(int[] nums) {
        List<String> result = new ArrayList<>();
        if (nums.length == 0) {
            return result;
        }

        int start = nums[0]; // 当前区间的起始值
        int end = nums[0]; // 当前区间的结束值

        for (int i = 1; i < nums.length; i++) {
            // 如果当前数字与上一个数字连续
            if (nums[i] == nums[i - 1] + 1) {
                end = nums[i]; // 扩展当前区间
            } else {
                // 保存当前区间
                if (start == end) {
                    result.add(String.valueOf(start));
                } else {
                    result.add(start + "->" + end);
                }
                // 开始新的区间
                start = nums[i];
                end = nums[i];
            }
        }

        // 处理最后一个区间
        if (start == end) {
            result.add(String.valueOf(start));
        } else {
            result.add(start + "->" + end);
        }

        return result;
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] nums = new int[n];
        for (int i = 0; i < n; i++) {
            nums[i] = sc.nextInt();
        }
        List<String> res = check(nums);
        for (int i = 0; i < res.size(); i++) {
            System.out.println(res.get(i));
        }
        sc.close();
    }
}